1. Field of the Invention
The present invention relates generally to computer systems, and more particularly but not exclusively to data transfer over a packet network.
2. Description of the Background Art
Computer viruses, worms, Trojans, and spyware are examples of malicious codes that have plagued computer systems throughout the world. Although there are technical differences between each type of malicious code, malicious codes are collectively referred to herein as “viruses”, as is common in the industry. Generally speaking, a computer virus can corrupt or delete important files, send e-mails without user authorization, render a computer inoperable, or cause other types of damage to a computer. Computers may incorporate antivirus programs as a protective measure against viruses.
A typical antivirus program uses a pattern file to scan a computer for viruses. The pattern file includes the patterns (also referred to as “signatures”) of known viruses, algorithms for detecting viruses, and/or other antivirus-related information. The antivirus program uses the pattern file as a reference in determining if data, such as those in files, contain a virus. Antivirus programs, including their pattern files, may be continually updated to keep up with new viruses. These updates to antivirus programs (“updates”) are typically delivered from a vendor server computer to a customer client computer over a computer network, such as the Internet.
During a virus outbreak, the Internet and private computer networks may be severely congested with traffic. For example, network viruses may actively use a lot of bandwidth as they spread through the network and conduct illegal network communications. Network congestion may lead to packet loss and peer to peer delay. Unfortunately, updates to antivirus programs must still be delivered to customer client computers to combat the viruses even when the networks are heavily congested with traffic.
What is needed is a technique for reliable and reasonably fast delivery of updates to antivirus programs over a congested computer network.